//已知一个升序的数组int[]arr={1,8,9,45,78,86,95}，要求插入一个元素，
//插入还是升序，比如int[]arr={1,8,9,45,78,86,95}插入23后得到
//   1,8,9,23，45,78,86,95
import java.util.Arrays;
public class Homework {
    public static void main(String[] args) {
        int[]arr={1,8,9,45,78,86,95};
        int insertNum=23;//插入的数字
        int index=-1;//要插入的下标
        for (int i = 0; i < arr.length ; i++) {//遍历数组
            if(insertNum<=arr[i])//从第0号元素开始 插入位置满足小于等于后一个元素
            {
                index=i; //保存插入下标
                break;//找到下标后跳出循环
            }else{
                index= arr.length;//若都不满足则最大，插入到最后位置
            }
        }
        int []arrNew=new int[arr.length+1];//创建新数组 数组扩容加1
        for (int i = 0,j=0; i < arrNew.length ; i++) {  //遍历新数组给新数组赋值
            if(i!=index) //不在插入位置
            {
                arrNew[i]=arr[j]; //直接赋值
                j++;//赋值之后移动arr下标
            }else{
                arrNew[i]=insertNum;//插入位置 ，插入值赋值
            }

        }
        arr=arrNew;//arr指向新数组，原数组废弃

            System.out.println("插入后的升序数组："+Arrays.toString(arrNew));




    }
}
